Problem Note 34272: Problems occur in SAS BI Web Service for .Net if you do not install .Net Framework 2.0 Service Pack 1.
The following problems occur in SAS BI Web Services for .Net when you use the .Net Framework 2.0 if you do not apply Service Pack 1:
- Optional variables might be set incorrectly to false. This problem can occur when there is a prompt for a SAS® Stored Process that has the following characteristics:
- The prompt is optional.
- The prompt has a default value.
- The prompt type is on in which where a .NET reference type is used to represent that prompt in your generated services code.
An example would be a TimeStamp prompt that is represented by a SASDateTime object.
In this case, the method generates a service that has the following appearance:
public virtual void PromptTest([System.Xml.Serialization.XmlIgnoreAttribute()] bool sasInputDtSpecified,
SASDateTime sasInputDt)
Because the variable sasInputDt is optional, the user can choose not to pass it in the request. If the user
does supply the sasInputDt prompt value, then sasInputDtSpecified should be set to true. However, in the .NET Framework 2.0 there is a bug where sasInputDtSpecified is always set to false. This would appear when Timestamp, OlapMember, Ranges, File, Data Source, Data Source Item, or multi-selection prompts are used. This behavior and fix is outlined in the Microsoft knowledge base article FIX: The XML serialization might lose some optional elements in an XSD schema in the .NET Framework 2.0
- When you use data sources or data targets, the root element in the input XML is not written to SAS, and it is not included in the web service output. When data sources are used, this causes the SAS program to fail because the SAS XML LIBNAME engine needs the xml with a root element. When you use data targets, the returned XML that represents the data target output does not have a parent element with the data target's name. For example, the data targets should receive the following in the response:
<copyintoout_csv_attResponse xmlns="http://tempuri.org/copyintoout2WS">
<MyDataTarget>
<TABLE xmlns="">
<INDATA>
<COLUMN1>1</COLUMN1>
<COLUMN2>20</COLUMN2>
<COLUMN3>99</COLUMN3>
</INDATA>
</TABLE>
</MyDataTarget>
</copyintoout_csv_attResponse>
However, without Service Pack 1, the following is received:
<copyintoout_csv_attResponse xmlns="http://tempuri.org/copyintoout2WS">
<TABLE xmlns="">
<INDATA>
<COLUMN1>1</COLUMN1>
<COLUMN2>20</COLUMN2>
<COLUMN3>99</COLUMN3>
</INDATA>
</TABLE>
</copyintoout_csv_attResponse>
- Additional problems can occur if Service Pack 1 is not applied. See the Microsoft Support page FIX: Error message after you install the MS07-040 update and you try to serialize a custom data type in a .NET Framework 2.0 application: "Error CS0200". This document explains that after installing a Microsoft update, serialization errors might occur in some circumstances.
For a complete list of fixes in .Net Framework 2.0 SP1, see Problems that are fixed in the .NET Framework 2.0 Service Pack 1.
Operating System and Release Information
SAS System | SAS BI Web Services for .NET | Microsoft Windows XP Professional | 9.2 TS2M0 | 9.2 TS2M3 |
Microsoft Windows Server 2003 Standard Edition | 9.2 TS2M0 | 9.2 TS2M3 |
Microsoft Windows Server 2003 Enterprise Edition | 9.2 TS2M0 | 9.2 TS2M3 |
Microsoft Windows Server 2003 Datacenter Edition | 9.2 TS2M0 | 9.2 TS2M3 |
Microsoft® Windows® for x64 | 9.2 TS2M0 | 9.2 TS2M3 |
Windows Vista | 9.2 TS2M0 | 9.2 TS2M3 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
For illustration purposese, the following code downloads a data set that generates the error code explained in
this note. Note that you need to enter your own values for the following user-supplied values:
- path-to-your-secure-server
- server-name
- user-name
- password
- your-machine-name
All files that need to be pushed for this example reside in /sas/dev/mva-v920/tkext/src/tkessl.c.
libname sdd base "path-to-your-secure-server" server-name user="user-name" password="password";
%let thepc=your-machine-name;
signon thepc user="user-name" password="password";
rsubmit;
libname pc 'e:/testing/datasets' access=readonly;
proc download inlib=pc outlib=sdd;
select test;
select test2;
run;
endrsubmit;
libname pc server=thepc;
proc compare data=pc.test compare=sdd.test;
proc compare data=pc.test2 compare=sdd.test2;
run;
signoff;
proc datasets library=sdd kill;
run;
Problems in the .Net Framework 2.0 might manifest themselves in certain scenarios.
Type: | Problem Note |
Priority: | medium |
Topic: | System Administration ==> Servers ==> Integration Technologies
|
Date Modified: | 2009-03-06 11:27:12 |
Date Created: | 2008-12-19 12:49:55 |